using Kopernikus.Collections.Generic;

namespace Kopernikus.Parsing.Earley
{
    public interface IEarleyEvaluator<T, S>
    {
        Production Disambiguate(Set<Production> productions);
        S ReduceEmpty(Symbol symbol);
        S Shift(T token);
        S Reduce(Production p, S[] rhs);
    }
}